/*!
 *  \file       LowPassFilterGenerator.hpp
 *  \brief      Definizione della classe \c LowPassFilterGenerator
 *  \author     Davide Scola <S2299453@studenti.unige.it>
 *  \author	Minetti Alberto <S3064777@studenti.unige.it>
 *  \version    1.0
 *
 */

#ifndef _LOW_PASS_FILTER_GENERATOR_H
#define _LOW_PASS_FILTER_GENERATOR_H

/*!
 *  \brief      Definizione della classe \c LowPassFilterGenerator
 */
template< class tType >
class LowPassFilterGenerator : public IFilterGenerator< tType >
{
  public :
    LowPassFilterGenerator( std::vector< std::complex< tType > > & );
    LowPassFilterGenerator( LowPassFilterGenerator< tType > const& );
    
    virtual LowPassFilterGenerator& operator=( const LowPassFilterGenerator& );
    
    // interface methods
    virtual std::complex< tType > operator() ( std::complex< tType > );
    
  private :
    unsigned long int iIndex_;
    unsigned long int inputSize_;
    unsigned long int cutoffIndex_;
};

#endif              /* _LOW_PASS_FILTER_GENERATOR_H */
